package j06chouxiang;

/*
抽象类，
普通类，是抽象类的真子集
 */
abstract class C1{
    int age = 6;

    //抽象方法

}

public class J1 {

    public static void main(String[] args) {
//        C1 c = new C1();
    }
}


abstract class Animal{
//    public void eat() {
//
//    }
    //抽象方法没有方法体，没有必要
    abstract void eat();
}

//子类可以不实现父类的抽象方法，但是自身也要抽象
abstract class Cat extends Animal{

}
class Dog extends Animal{
    void eat(){
        System.out.println("狗吃骨头");
    }
}

class DogTest{
    public static void main(String[] args) {
        Dog d1 = new Dog();
        d1.eat();

        Animal a1 = new Dog();
        a1.eat();
    }
}

abstract class Fa{
    abstract void f1();
    abstract void f2();
}

class Ch1 extends Fa{
    void f1(){}
    void f2(){}
}
abstract class Ch2 extends Fa{
    void f1(){}
}
class Sun extends Ch2{
    void f2(){}
}